<?php 
/***
	Jfile.1.0.php
	name:xiaojia
	email:iatt@qq.com
	qq:273142650
	time:2011.10.28 14:48
***/
	class Jfile
	{
		
		public $root;
		
		function dir ($path)
		{
			$root = $this -> root;
			
			$path = $this -> realPath($path);
			
			if (stristr($path, $root) == false) {
				return false;
			}
			
			$path = @iconv("UTF-8", "GB2312", $path);
			$dir = opendir($path);
			$index = 0;
			
			while ($name = readdir($dir)) {
				if ($index > 1 || $path != $root) {
					$type = @filetype($path.$name);
					$size = @filesize($path.$name);
					$extn = explode('.', $name);
					count($extn) < 2 ? $extn = '' : $extn = end($extn);
					$name = @iconv("GB2312", "UTF-8", $name);
					$arr = array(
						'name' => $name, 
						'type' => $type,
						'size' => $size,
						'extn' => $extn,
					);
					if ($type == 'dir') {
						$file['dir'][] = $arr;
					} else {
						$file['file'][] = $arr;
					}
				}
				$index ++;
				clearstatcache();
			}
			
			$file['path'] = @iconv("GB2312", "UTF-8", $path);
			
			return $file;
		}
		
		function realPath($path) {
  			$path      = preg_replace('/\/+/', '/', $path);
  			$patharray = explode('/', $path);
			$path      = ''; 
			$count     = count($patharray); //We have multiple count($patharray) so a minor bit faster.
			for ($i=0; $i<$count; $i++) {
				if ( $patharray[$i] == '.' || $patharray[$i]== '..' || ( (($i+1) < $count) && ($patharray[$i+1]== '..')) ) {
					//If the current pos is a . ignore, if pos+1 == .. ignore, lastly if current = .. ignore.
				} else {
					$path .= $patharray[$i].'/';
				}
			}
			//Trim trailing slash
			if (!empty($path)) {
				$path = substr($path, 0, -1);
			}
			return $path;
		}
		
		/************************************************************************/
		/****** 递归删除文件和文件夹 ***********************************************/
		/************************************************************************/
		
		function deldir($dir, $itself = 0) {
			
			$dh = opendir($dir);
			
			while ($file = readdir($dh)) {
				if($file != "." && $file != "..") {
					$fullpath = $dir . "/" . $file;
					if( !is_dir($fullpath) ) {
						unlink($fullpath);
					} else {
						deldir($fullpath);
					}
				}
			}
 
			closedir($dh);
			
			if ($itself == 0) {
				
				return rmdir($dir);
				
			} elseif ($itself == 1) {
			
				return true;
			
			}
			
		}
		
		function fileMIME ($path) {
			
			$MIME = array(  
				'3dm'    => 'x-world/x-3dmf',  
				'3dmf'   => 'x-world/x-3dmf',  
				'a'      => 'application/octet-stream',  
				'aab'    => 'application/x-authorware-bin',  
				'aam'    => 'application/x-authorware-map',  
				'aas'    => 'application/x-authorware-seg',  
				'abc'    => 'text/vnd.abc',  
				'acgi'   => 'text/html',  
				'afl'    => 'video/animaflex',  
				'ai'     => 'application/postscript',  
				'aif'    => 'audio/aiff',  
				'aif'    => 'audio/x-aiff',  
				'aifc'   => 'audio/aiff',  
				'aifc'   => 'audio/x-aiff',  
				'aiff'   => 'audio/aiff',  
				'aiff'   => 'audio/x-aiff',  
				'aim'    => 'application/x-aim',  
				'aip'    => 'text/x-audiosoft-intra',  
				'ani'    => 'application/x-navi-animation',  
				'aos'    => 'application/x-nokia-9000-communicator-add-on-software',  
				'aps'    => 'application/mime',  
				'arc'    => 'application/octet-stream',  
				'arj'    => 'application/arj',  
				'arj'    => 'application/octet-stream',  
				'art'    => 'image/x-jg',  
				'asf'    => 'video/x-ms-asf',  
				'asm'    => 'text/x-asm',  
				'asp'    => 'text/asp',  
				'asx'    => 'application/x-mplayer2',  
				'asx'    => 'video/x-ms-asf',  
				'asx'    => 'video/x-ms-asf-plugin',  
				'au'     => 'audio/basic',  
				'au'     => 'audio/x-au',  
				'avi'    => 'application/x-troff-msvideo',  
				'avi'    => 'video/avi',  
				'avi'    => 'video/msvideo',  
				'avi'    => 'video/x-msvideo',  
				'avs'    => 'video/avs-video',  
				'bcpio'  => 'application/x-bcpio',  
				'bin'    => 'application/mac-binary',  
				'bin'    => 'application/macbinary',  
				'bin'    => 'application/octet-stream',  
				'bin'    => 'application/x-binary',  
				'bin'    => 'application/x-macbinary',  
				'bm'     => 'image/bmp',  
				'bmp'    => 'image/bmp',  
				'bmp'    => 'image/x-windows-bmp',  
				'boo'    => 'application/book',  
				'book'   => 'application/book',  
				'boz'    => 'application/x-bzip2',  
				'bsh'    => 'application/x-bsh',  
				'bz'     => 'application/x-bzip',  
				'bz2'    => 'application/x-bzip2',  
				'c'      => 'text/plain',  
				'c'      => 'text/x-c',  
				'c++'    => 'text/plain',  
				'cat'    => 'application/vnd.ms-pki.seccat',  
				'cc'     => 'text/plain',  
				'cc'     => 'text/x-c',  
				'ccad'   => 'application/clariscad',  
				'cco'    => 'application/x-cocoa',  
				'cdf'    => 'application/cdf',  
				'cdf'    => 'application/x-cdf',  
				'cdf'    => 'application/x-netcdf',  
				'cer'    => 'application/pkix-cert',  
				'cer'    => 'application/x-x509-ca-cert',  
				'cha'    => 'application/x-chat',  
				'chat'   => 'application/x-chat',  
				'class'  => 'application/java',  
				'class'  => 'application/java-byte-code',  
				'class'  => 'application/x-java-class',  
				'com'    => 'application/octet-stream',  
				'com'    => 'text/plain',  
				'conf'   => 'text/plain',  
				'cpio'   => 'application/x-cpio',  
				'cpp'    => 'text/x-c',  
				'cpt'    => 'application/mac-compactpro',  
				'cpt'    => 'application/x-compactpro',  
				'cpt'    => 'application/x-cpt',  
				'crl'    => 'application/pkcs-crl',  
				'crl'    => 'application/pkix-crl',  
				'crt'    => 'application/pkix-cert',  
				'crt'    => 'application/x-x509-ca-cert',  
				'crt'    => 'application/x-x509-user-cert',  
				'csh'    => 'application/x-csh',  
				'csh'    => 'text/x-script.csh',  
				'css'    => 'application/x-pointplus',  
				'css'    => 'text/css',  
				'cxx'    => 'text/plain',  
				'dcr'    => 'application/x-director',  
				'deepv'  => 'application/x-deepv',  
				'def'    => 'text/plain',  
				'der'    => 'application/x-x509-ca-cert',  
				'dif'    => 'video/x-dv',  
				'dir'    => 'application/x-director',  
				'dl'     => 'video/dl',  
				'dl'     => 'video/x-dl',  
				'doc'    => 'application/msword',  
				'dot'    => 'application/msword',  
				'dp'     => 'application/commonground',  
				'drw'    => 'application/drafting',  
				'dump'   => 'application/octet-stream',  
				'dv'     => 'video/x-dv',  
				'dvi'    => 'application/x-dvi',  
				'dwf'    => 'model/vnd.dwf',  
				'dwg'    => 'application/acad',  
				'dwg'    => 'image/vnd.dwg',  
				'dwg'    => 'image/x-dwg',  
				'dxf'    => 'application/dxf',  
				'dxf'    => 'image/vnd.dwg',  
				'dxf'    => 'image/x-dwg',  
				'dxr'    => 'application/x-director',  
				'el'     => 'text/x-script.elisp',  
				'elc'    => 'application/x-bytecode.elisp',  
				'elc'    => 'application/x-elc',  
				'env'    => 'application/x-envoy',  
				'eps'    => 'application/postscript',  
				'es'     => 'application/x-esrehber',  
				'etx'    => 'text/x-setext',  
				'evy'    => 'application/envoy',  
				'evy'    => 'application/x-envoy',  
				'exe'    => 'application/octet-stream',  
				'f'      => 'text/plain',  
				'f'      => 'text/x-fortran',  
				'f77'    => 'text/x-fortran',  
				'f90'    => 'text/plain',  
				'f90'    => 'text/x-fortran',  
				'fdf'    => 'application/vnd.fdf',  
				'fif'    => 'application/fractals',  
				'fif'    => 'image/fif',  
				'fli'    => 'video/fli',  
				'fli'    => 'video/x-fli',  
				'flo'    => 'image/florian',  
				'flx'    => 'text/vnd.fmi.flexstor',  
				'fmf'    => 'video/x-atomic3d-feature',  
				'for'    => 'text/plain',  
				'for'    => 'text/x-fortran',  
				'fpx'    => 'image/vnd.fpx',  
				'fpx'    => 'image/vnd.net-fpx',  
				'frl'    => 'application/freeloader',  
				'funk'   => 'audio/make',  
				'g'      => 'text/plain',  
				'g3'     => 'image/g3fax',  
				'gif'    => 'image/gif',  
				'gl'     => 'video/gl',  
				'gl'     => 'video/x-gl',  
				'gsd'    => 'audio/x-gsm',  
				'gsm'    => 'audio/x-gsm',  
				'gsp'    => 'application/x-gsp',  
				'gss'    => 'application/x-gss',  
				'gtar'   => 'application/x-gtar',  
				'gz'     => 'application/x-compressed',  
				'gz'     => 'application/x-gzip',  
				'gzip'   => 'application/x-gzip',  
				'gzip'   => 'multipart/x-gzip',  
				'h'      => 'text/plain',  
				'h'      => 'text/x-h',  
				'hdf'    => 'application/x-hdf',  
				'help'   => 'application/x-helpfile',  
				'hgl'    => 'application/vnd.hp-hpgl',  
				'hh'     => 'text/plain',  
				'hh'     => 'text/x-h',  
				'hlb'    => 'text/x-script',  
				'hlp'    => 'application/hlp',  
				'hlp'    => 'application/x-helpfile',  
				'hlp'    => 'application/x-winhelp',  
				'hpg'    => 'application/vnd.hp-hpgl',  
				'hpgl'   => 'application/vnd.hp-hpgl',  
				'hqx'    => 'application/binhex',  
				'hqx'    => 'application/binhex4',  
				'hqx'    => 'application/mac-binhex',  
				'hqx'    => 'application/mac-binhex40',  
				'hqx'    => 'application/x-binhex40',  
				'hqx'    => 'application/x-mac-binhex40',  
				'hta'    => 'application/hta',  
				'htc'    => 'text/x-component',  
				'htm'    => 'text/html',  
				'html'   => 'text/html',  
				'htmls'  => 'text/html',  
				'htt'    => 'text/webviewhtml',  
				'htx'    => 'text/html',  
				'ice'    => 'x-conference/x-cooltalk',  
				'ico'    => 'image/x-icon',  
				'idc'    => 'text/plain',  
				'ief'    => 'image/ief',  
				'iefs'   => 'image/ief',  
				'iges'   => 'application/iges',  
				'iges'   => 'model/iges',  
				'igs'    => 'application/iges',  
				'igs'    => 'model/iges',  
				'ima'    => 'application/x-ima',  
				'imap'   => 'application/x-httpd-imap',  
				'inf'    => 'application/inf',  
				'ins'    => 'application/x-internett-signup',  
				'ip'     => 'application/x-ip2',  
				'isu'    => 'video/x-isvideo',  
				'it'     => 'audio/it',  
				'iv'     => 'application/x-inventor',  
				'ivr'    => 'i-world/i-vrml',  
				'ivy'    => 'application/x-livescreen',  
				'jam'    => 'audio/x-jam',  
				'jav'    => 'text/plain',  
				'jav'    => 'text/x-java-source',  
				'java'   => 'text/plain',  
				'java'   => 'text/x-java-source',  
				'jcm'    => 'application/x-java-commerce',  
				'jfif'   => 'image/jpeg',  
				'jfif'   => 'image/pjpeg',  
				'jfif-tbnl' => 'image/jpeg',  
				'jpe'    => 'image/jpeg',  
				'jpe'    => 'image/pjpeg',  
				'jpeg'   => 'image/jpeg',  
				'jpeg'   => 'image/pjpeg',  
				'jpg'    => 'image/jpeg',  
				'jpg'    => 'image/pjpeg',  
				'jps'    => 'image/x-jps',  
				'js'     => 'application/x-javascript',  
				'jut'    => 'image/jutvision',  
				'kar'    => 'audio/midi',  
				'kar'    => 'music/x-karaoke',  
				'ksh'    => 'application/x-ksh',  
				'ksh'    => 'text/x-script.ksh',  
				'la'     => 'audio/nspaudio',  
				'la'     => 'audio/x-nspaudio',  
				'lam'    => 'audio/x-liveaudio',  
				'latex'  => 'application/x-latex',  
				'lha'    => 'application/lha',  
				'lha'    => 'application/octet-stream',  
				'lha'    => 'application/x-lha',  
				'lhx'    => 'application/octet-stream',  
				'list'   => 'text/plain',  
				'lma'    => 'audio/nspaudio',  
				'lma'    => 'audio/x-nspaudio',  
				'log'    => 'text/plain',  
				'lsp'    => 'application/x-lisp',  
				'lsp'    => 'text/x-script.lisp',  
				'lst'    => 'text/plain',  
				'lsx'    => 'text/x-la-asf',  
				'ltx'    => 'application/x-latex',  
				'lzh'    => 'application/octet-stream',  
				'lzh'    => 'application/x-lzh',  
				'lzx'    => 'application/lzx',  
				'lzx'    => 'application/octet-stream',  
				'lzx'    => 'application/x-lzx',  
				'm'      => 'text/plain',  
				'm'      => 'text/x-m',  
				'm1v'    => 'video/mpeg',  
				'm2a'    => 'audio/mpeg',  
				'm2v'    => 'video/mpeg',  
				'm3u'    => 'audio/x-mpequrl',  
				'man'    => 'application/x-troff-man',  
				'map'    => 'application/x-navimap',  
				'mar'    => 'text/plain',  
				'mbd'    => 'application/mbedlet',  
				'mc$'    => 'application/x-magic-cap-package-1.0',  
				'mcd'    => 'application/mcad',  
				'mcd'    => 'application/x-mathcad',  
				'mcf'    => 'image/vasa',  
				'mcf'    => 'text/mcf',  
				'mcp'    => 'application/netmc',  
				'me'     => 'application/x-troff-me',  
				'mht'    => 'message/rfc822',  
				'mhtml'  => 'message/rfc822',  
				'mid'    => 'application/x-midi',  
				'mid'    => 'audio/midi',  
				'mid'    => 'audio/x-mid',  
				'mid'    => 'audio/x-midi',  
				'mid'    => 'music/crescendo',  
				'mid'    => 'x-music/x-midi',  
				'midi'   => 'application/x-midi',  
				'midi'   => 'audio/midi',  
				'midi'   => 'audio/x-mid',  
				'midi'   => 'audio/x-midi',  
				'midi'   => 'music/crescendo',  
				'midi'   => 'x-music/x-midi',  
				'mif'    => 'application/x-frame',  
				'mif'    => 'application/x-mif',  
				'mime'   => 'message/rfc822',  
				'mime'   => 'www/mime',  
				'mjf'    => 'audio/x-vnd.audioexplosion.mjuicemediafile',  
				'mjpg'   => 'video/x-motion-jpeg',  
				'mm'     => 'application/base64',  
				'mm'     => 'application/x-meme',  
				'mme'    => 'application/base64',  
				'mod'    => 'audio/mod',  
				'mod'    => 'audio/x-mod',  
				'moov'   => 'video/quicktime',  
				'mov'    => 'video/quicktime',  
				'movie'  => 'video/x-sgi-movie',  
				'mp2'    => 'audio/mpeg',  
				'mp2'    => 'audio/x-mpeg',  
				'mp2'    => 'video/mpeg',  
				'mp2'    => 'video/x-mpeg',  
				'mp2'    => 'video/x-mpeq2a',  
				'mp3'    => 'audio/mpeg3',  
				'mp3'    => 'audio/x-mpeg-3',  
				'mp3'    => 'video/mpeg',  
				'mp3'    => 'video/x-mpeg',  
				'mpa'    => 'audio/mpeg',  
				'mpa'    => 'video/mpeg',  
				'mpc'    => 'application/x-project',  
				'mpe'    => 'video/mpeg',  
				'mpeg'   => 'video/mpeg',  
				'mpg'    => 'audio/mpeg',  
				'mpg'    => 'video/mpeg',  
				'mpga'   => 'audio/mpeg',  
				'mpp'    => 'application/vnd.ms-project',  
				'mpt'    => 'application/x-project',  
				'mpv'    => 'application/x-project',  
				'mpx'    => 'application/x-project',  
				'mrc'    => 'application/marc',  
				'ms'     => 'application/x-troff-ms',  
				'mv'     => 'video/x-sgi-movie',  
				'my'     => 'audio/make',  
				'mzz'    => 'application/x-vnd.audioexplosion.mzz',  
				'nap'    => 'image/naplps',  
				'naplps' => 'image/naplps',  
				'nc'     => 'application/x-netcdf',  
				'ncm'    => 'application/vnd.nokia.configuration-message',  
				'nif'    => 'image/x-niff',  
				'niff'   => 'image/x-niff',  
				'nix'    => 'application/x-mix-transfer',  
				'nsc'    => 'application/x-conference',  
				'nvd'    => 'application/x-navidoc',  
				'o'      => 'application/octet-stream',  
				'oda'    => 'application/oda',  
				'ogg'    => 'audio/ogg',  
				'omc'    => 'application/x-omc',  
				'omcd'   => 'application/x-omcdatamaker',  
				'omcr'   => 'application/x-omcregerator',  
				'p'      => 'text/x-pascal',  
				'p10'    => 'application/pkcs10',  
				'p10'    => 'application/x-pkcs10',  
				'p12'    => 'application/pkcs-12',  
				'p12'    => 'application/x-pkcs12',  
				'p7a'    => 'application/x-pkcs7-signature',  
				'p7c'    => 'application/pkcs7-mime',  
				'p7c'    => 'application/x-pkcs7-mime',  
				'p7m'    => 'application/pkcs7-mime',  
				'p7m'    => 'application/x-pkcs7-mime',  
				'p7r'    => 'application/x-pkcs7-certreqresp',  
				'p7s'    => 'application/pkcs7-signature',  
				'part'   => 'application/pro_eng',  
				'pas'    => 'text/pascal',  
				'pbm'    => 'image/x-portable-bitmap',  
				'pcl'    => 'application/vnd.hp-pcl',  
				'pcl'    => 'application/x-pcl',  
				'pct'    => 'image/x-pict',  
				'pcx'    => 'image/x-pcx',  
				'pdb'    => 'chemical/x-pdb',  
				'pdf'    => 'application/pdf',  
				'pfunk'  => 'audio/make',  
				'pfunk'  => 'audio/make.my.funk',  
				'pgm'    => 'image/x-portable-graymap',  
				'pgm'    => 'image/x-portable-greymap',  
				'pic'    => 'image/pict',  
				'pict'   => 'image/pict',  
				'pkg'    => 'application/x-newton-compatible-pkg',  
				'pko'    => 'application/vnd.ms-pki.pko',  
				'pl'     => 'text/plain',  
				'pl'     => 'text/x-script.perl',  
				'plx'    => 'application/x-pixclscript',  
				'pm'     => 'image/x-xpixmap',  
				'pm'     => 'text/x-script.perl-module',  
				'pm4'    => 'application/x-pagemaker',  
				'pm5'    => 'application/x-pagemaker',  
				'png'    => 'image/png',  
				'pnm'    => 'application/x-portable-anymap',  
				'pnm'    => 'image/x-portable-anymap',  
				'pot'    => 'application/mspowerpoint',  
				'pot'    => 'application/vnd.ms-powerpoint',  
				'pov'    => 'model/x-pov',  
				'ppa'    => 'application/vnd.ms-powerpoint',  
				'ppm'    => 'image/x-portable-pixmap',  
				'pps'    => 'application/mspowerpoint',  
				'pps'    => 'application/vnd.ms-powerpoint',  
				'ppt'    => 'application/mspowerpoint',  
				'ppt'    => 'application/powerpoint',  
				'ppt'    => 'application/vnd.ms-powerpoint',  
				'ppt'    => 'application/x-mspowerpoint',  
				'ppz'    => 'application/mspowerpoint',  
				'pre'    => 'application/x-freelance',  
				'prt'    => 'application/pro_eng',  
				'ps'     => 'application/postscript',  
				'psd'    => 'application/octet-stream',  
				'pvu'    => 'paleovu/x-pv',  
				'pwz'    => 'application/vnd.ms-powerpoint',  
				'py'     => 'text/x-script.phyton',  
				'pyc'    => 'applicaiton/x-bytecode.python',  
				'qcp'    => 'audio/vnd.qcelp',  
				'qd3'    => 'x-world/x-3dmf',  
				'qd3d'   => 'x-world/x-3dmf',  
				'qif'    => 'image/x-quicktime',  
				'qt'     => 'video/quicktime',  
				'qtc'    => 'video/x-qtc',  
				'qti'    => 'image/x-quicktime',  
				'qtif'   => 'image/x-quicktime',  
				'ra'     => 'audio/x-pn-realaudio',  
				'ra'     => 'audio/x-pn-realaudio-plugin',  
				'ra'     => 'audio/x-realaudio',  
				'ram'    => 'audio/x-pn-realaudio',  
				'ras'    => 'application/x-cmu-raster',  
				'ras'    => 'image/cmu-raster',  
				'ras'    => 'image/x-cmu-raster',  
				'rast'   => 'image/cmu-raster',  
				'rexx'   => 'text/x-script.rexx',  
				'rf'     => 'image/vnd.rn-realflash',  
				'rgb'    => 'image/x-rgb',  
				'rm'     => 'application/vnd.rn-realmedia',  
				'rm'     => 'audio/x-pn-realaudio',  
				'rmi'    => 'audio/mid',  
				'rmm'    => 'audio/x-pn-realaudio',  
				'rmp'    => 'audio/x-pn-realaudio',  
				'rmp'    => 'audio/x-pn-realaudio-plugin',  
				'rng'    => 'application/ringing-tones',  
				'rng'    => 'application/vnd.nokia.ringing-tone',  
				'rnx'    => 'application/vnd.rn-realplayer',  
				'roff'   => 'application/x-troff',  
				'rp'     => 'image/vnd.rn-realpix',  
				'rpm'    => 'audio/x-pn-realaudio-plugin',  
				'rt'     => 'text/richtext',  
				'rt'     => 'text/vnd.rn-realtext',  
				'rtf'    => 'application/rtf',  
				'rtf'    => 'application/x-rtf',  
				'rtf'    => 'text/richtext',  
				'rtx'    => 'application/rtf',  
				'rtx'    => 'text/richtext',  
				'rv'     => 'video/vnd.rn-realvideo',  
				's'      => 'text/x-asm',  
				's3m'    => 'audio/s3m',  
				'saveme' => 'application/octet-stream',  
				'sbk'    => 'application/x-tbook',  
				'scm'    => 'application/x-lotusscreencam',  
				'scm'    => 'text/x-script.guile',  
				'scm'    => 'text/x-script.scheme',  
				'scm'    => 'video/x-scm',  
				'sdml'   => 'text/plain',  
				'sdp'    => 'application/sdp',  
				'sdp'    => 'application/x-sdp',  
				'sdr'    => 'application/sounder',  
				'sea'    => 'application/sea',  
				'sea'    => 'application/x-sea',  
				'set'    => 'application/set',  
				'sgm'    => 'text/sgml',  
				'sgm'    => 'text/x-sgml',  
				'sgml'   => 'text/sgml',  
				'sgml'   => 'text/x-sgml',  
				'sh'     => 'application/x-bsh',  
				'sh'     => 'application/x-sh',  
				'sh'     => 'application/x-shar',  
				'sh'     => 'text/x-script.sh',  
				'shar'   => 'application/x-bsh',  
				'shar'   => 'application/x-shar',  
				'shtml'  => 'text/html',  
				'shtml'  => 'text/x-server-parsed-html',  
				'sid'    => 'audio/x-psid',  
				'sit'    => 'application/x-sit',  
				'sit'    => 'application/x-stuffit',  
				'skd'    => 'application/x-koan',  
				'skm'    => 'application/x-koan',  
				'skp'    => 'application/x-koan',  
				'skt'    => 'application/x-koan',  
				'sl'     => 'application/x-seelogo',  
				'smi'    => 'application/smil',  
				'smil'   => 'application/smil',  
				'snd'    => 'audio/basic',  
				'snd'    => 'audio/x-adpcm',  
				'sol'    => 'application/solids',  
				'spc'    => 'application/x-pkcs7-certificates',  
				'spc'    => 'text/x-speech',  
				'spl'    => 'application/futuresplash',  
				'spr'    => 'application/x-sprite',  
				'sprite' => 'application/x-sprite',  
				'src'    => 'application/x-wais-source',  
				'ssi'    => 'text/x-server-parsed-html',  
				'ssm'    => 'application/streamingmedia',  
				'sst'    => 'application/vnd.ms-pki.certstore',  
				'step'   => 'application/step',  
				'stl'    => 'application/sla',  
				'stl'    => 'application/vnd.ms-pki.stl',  
				'stl'    => 'application/x-navistyle',  
				'stp'    => 'application/step',  
				'sv4cpio'=> 'application/x-sv4cpio',  
				'sv4crc' => 'application/x-sv4crc',  
				'svf'    => 'image/vnd.dwg',  
				'svf'    => 'image/x-dwg',  
				'svr'    => 'application/x-world',  
				'svr'    => 'x-world/x-svr',  
				'swf'    => 'application/x-shockwave-flash',  
				't'      => 'application/x-troff',  
				'talk'   => 'text/x-speech',  
				'tar'    => 'application/x-tar',  
				'tbk'    => 'application/toolbook',  
				'tbk'    => 'application/x-tbook',  
				'tcl'    => 'application/x-tcl',  
				'tcl'    => 'text/x-script.tcl',  
				'tcsh'   => 'text/x-script.tcsh',  
				'tex'    => 'application/x-tex',  
				'texi'   => 'application/x-texinfo',  
				'texinfo'=> 'application/x-texinfo',  
				'text'   => 'application/plain',  
				'text'   => 'text/plain',  
				'tgz'    => 'application/gnutar',  
				'tgz'    => 'application/x-compressed',  
				'tif'    => 'image/tiff',  
				'tif'    => 'image/x-tiff',  
				'tiff'   => 'image/tiff',  
				'tiff'   => 'image/x-tiff',  
				'tr'     => 'application/x-troff',  
				'tsi'    => 'audio/tsp-audio',  
				'tsp'    => 'application/dsptype',  
				'tsp'    => 'audio/tsplayer',  
				'tsv'    => 'text/tab-separated-values',  
				'turbot' => 'image/florian',  
				'txt'    => 'text/plain',  
				'uil'    => 'text/x-uil',  
				'uni'    => 'text/uri-list',  
				'unis'   => 'text/uri-list',  
				'unv'    => 'application/i-deas',  
				'uri'    => 'text/uri-list',  
				'uris'   => 'text/uri-list',  
				'ustar'  => 'application/x-ustar',  
				'ustar'  => 'multipart/x-ustar',  
				'uu'     => 'application/octet-stream',  
				'uu'     => 'text/x-uuencode',  
				'uue'    => 'text/x-uuencode',  
				'vcd'    => 'application/x-cdlink',  
				'vcs'    => 'text/x-vcalendar',  
				'vda'    => 'application/vda',  
				'vdo'    => 'video/vdo',  
				'vew'    => 'application/groupwise',  
				'viv'    => 'video/vivo',  
				'viv'    => 'video/vnd.vivo',  
				'vivo'   => 'video/vivo',  
				'vivo'   => 'video/vnd.vivo',  
				'vmd'    => 'application/vocaltec-media-desc',  
				'vmf'    => 'application/vocaltec-media-file',  
				'voc'    => 'audio/voc',  
				'voc'    => 'audio/x-voc',  
				'vos'    => 'video/vosaic',  
				'vox'    => 'audio/voxware',  
				'vqe'    => 'audio/x-twinvq-plugin',  
				'vqf'    => 'audio/x-twinvq',  
				'vql'    => 'audio/x-twinvq-plugin',  
				'vrml'   => 'application/x-vrml',  
				'vrml'   => 'model/vrml',  
				'vrml'   => 'x-world/x-vrml',  
				'vrt'    => 'x-world/x-vrt',  
				'vsd'    => 'application/x-visio',  
				'vst'    => 'application/x-visio',  
				'vsw'    => 'application/x-visio',  
				'w60'    => 'application/wordperfect6.0',  
				'w61'    => 'application/wordperfect6.1',  
				'w6w'    => 'application/msword',  
				'wav'    => 'audio/wav',  
				'wav'    => 'audio/x-wav',  
				'wb1'    => 'application/x-qpro',  
				'wbmp'   => 'image/vnd.wap.wbmp',  
				'web'    => 'application/vnd.xara',  
				'wiz'    => 'application/msword',  
				'wk1'    => 'application/x-123',  
				'wmf'    => 'windows/metafile',  
				'wml'    => 'text/vnd.wap.wml',  
				'wmlc'   => 'application/vnd.wap.wmlc',  
				'wmls'   => 'text/vnd.wap.wmlscript',  
				'wmlsc'  => 'application/vnd.wap.wmlscriptc',  
				'word'   => 'application/msword',  
				'wp'     => 'application/wordperfect',  
				'wp5'    => 'application/wordperfect',  
				'wp5'    => 'application/wordperfect6.0',  
				'wp6'    => 'application/wordperfect',  
				'wpd'    => 'application/wordperfect',  
				'wpd'    => 'application/x-wpwin',  
				'wq1'    => 'application/x-lotus',  
				'wri'    => 'application/mswrite',  
				'wri'    => 'application/x-wri',  
				'wrl'    => 'application/x-world',  
				'wrl'    => 'model/vrml',  
				'wrl'    => 'x-world/x-vrml',  
				'wrz'    => 'model/vrml',  
				'wrz'    => 'x-world/x-vrml',  
				'wsc'    => 'text/scriplet',  
				'wsrc'   => 'application/x-wais-source',  
				'wtk'    => 'application/x-wintalk',  
				'xbm'    => 'image/x-xbitmap',  
				'xbm'    => 'image/x-xbm',  
				'xbm'    => 'image/xbm',  
				'xdr'    => 'video/x-amt-demorun',  
				'xgz'    => 'xgl/drawing',  
				'xif'    => 'image/vnd.xiff',  
				'xl'     => 'application/excel',  
				'xla'    => 'application/excel',  
				'xla'    => 'application/x-excel',  
				'xla'    => 'application/x-msexcel',  
				'xlb'    => 'application/excel',  
				'xlb'    => 'application/vnd.ms-excel',  
				'xlb'    => 'application/x-excel',  
				'xlc'    => 'application/excel',  
				'xlc'    => 'application/vnd.ms-excel',  
				'xlc'    => 'application/x-excel',  
				'xld'    => 'application/excel',  
				'xld'    => 'application/x-excel',  
				'xlk'    => 'application/excel',  
				'xlk'    => 'application/x-excel',  
				'xll'    => 'application/excel',  
				'xll'    => 'application/vnd.ms-excel',  
				'xll'    => 'application/x-excel',  
				'xlm'    => 'application/excel',  
				'xlm'    => 'application/vnd.ms-excel',  
				'xlm'    => 'application/x-excel',  
				'xls'    => 'application/excel',  
				'xls'    => 'application/vnd.ms-excel',  
				'xls'    => 'application/x-excel',  
				'xls'    => 'application/x-msexcel',  
				'xlt'    => 'application/excel',  
				'xlt'    => 'application/x-excel',  
				'xlv'    => 'application/excel',  
				'xlv'    => 'application/x-excel',  
				'xlw'    => 'application/excel',  
				'xlw'    => 'application/vnd.ms-excel',  
				'xlw'    => 'application/x-excel',  
				'xlw'    => 'application/x-msexcel',  
				'xm'     => 'audio/xm',  
				'xml'    => 'application/xml',  
				'xml'    => 'text/xml',  
				'xmz'    => 'xgl/movie',  
				'xpix'   => 'application/x-vnd.ls-xpix',  
				'xpm'    => 'image/x-xpixmap',  
				'xpm'    => 'image/xpm',  
				'x-png'  => 'image/png',  
				'xsr'    => 'video/x-amt-showrun',  
				'xwd'    => 'image/x-xwd',  
				'xwd'    => 'image/x-xwindowdump',  
				'xyz'    => 'chemical/x-pdb',  
				'z'      => 'application/x-compress',  
				'z'      => 'application/x-compressed',  
				'zip'    => 'application/x-compressed',  
				'zip'    => 'application/x-zip-compressed',  
				'zip'    => 'application/zip',  
				'zip'    => 'multipart/x-zip',  
				'zoo'    => 'application/octet-stream',  
				'zsh'    => 'text/x-script.zsh',  
				'txt'    => 'text/plain',  
				'htm'    => 'text/html',  
				'html'   => 'text/html',  
				'php'    => 'application/x-httpd-php',  
				'phps'   => 'application/x-httpd-phps',  
				'css'    => 'text/css',  
				'js'     => 'application/javascript',  
				'json'   => 'application/json',  
				'xml'    => 'application/xml',  
				'swf'    => 'application/x-shockwave-flash',  
				'flv'    => 'video/x-flv',  
				'asc'    => 'text/plain',  
				'atom'   => 'application/atom+xml',  
				'bcpio'  => 'application/x-bcpio',  
				'png'    => 'image/png',  
				'jpe'    => 'image/jpeg',  
				'jpeg'   => 'image/jpeg',  
				'jpg'    => 'image/jpeg',  
				'gif'    => 'image/gif',  
				'bmp'    => 'image/bmp',  
				'ico'    => 'image/vnd.microsoft.icon',  
				'tiff'   => 'image/tiff',  
				'tif'    => 'image/tiff',  
				'svg'    => 'image/svg+xml',  
				'svgz'   => 'image/svg+xml',  
				'zip'    => 'application/zip',  
				'rar'    => 'application/x-rar-compressed',  
				'exe'    => 'application/x-msdownload',  
				'msi'    => 'application/x-msdownload',  
				'cab'    => 'application/vnd.ms-cab-compressed',  
				'mp3'    => 'audio/mpeg',  
				'qt'     => 'video/quicktime',  
				'mov'    => 'video/quicktime',  
				'au'     => 'audio/basic',  
				'avi'    => 'video/x-msvideo',  
				'pdf'    => 'application/pdf',  
				'psd'    => 'image/vnd.adobe.photoshop',  
				'ai'     => 'application/postscript',  
				'eps'    => 'application/postscript',  
				'ps'     => 'application/postscript',  
				'aif'    => 'audio/x-aiff',  
				'aifc'   => 'audio/x-aiff',  
				'aiff'   => 'audio/x-aiff',  
				'doc'    => 'application/msword',  
				'rtf'    => 'application/rtf',  
				'xls'    => 'application/vnd.ms-excel',  
				'ppt'    => 'application/vnd.ms-powerpoint',  
				'odt'    => 'application/vnd.oasis.opendocument.text',  
				'ods'    => 'application/vnd.oasis.opendocument.spreadsheet',  
				'swf'    => 'application/x-shockwave-flash',  
				'swf'    => 'application/x-shockwave-flash2-preview',  
				'swf'    => 'application/futuresplash',  
				'swf'    => 'image/vnd.rn-realflash'  
			);
			
			$expa = strtolower(preg_replace('/.*\./', '', $path));
			
			if (extension_loaded('fileinfo')) {
		
				$finfo = new finfo();
				$mimetype = explode(';', $finfo -> file($path, FILEINFO_MIME));
				$mimetype = $mimetype[0];
			
			}
				
			if ($mimetype == '') {
				
				$mimetype = $MIME[$expa];
				
			}
			
			return $mimetype;
			
		}
		
	}
?>